home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TeX 1995 July
/
TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO
/
tex-k
/
tex-k-archive.past
/
1994.11.gz
/
1994.11
/
000108_swift@acs.bu.edu_Thu Nov 17 01:39:40 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-11-30
|
4KB
Received: from acs3 (ACS3.BU.EDU) by cs.umb.edu with SMTP id AA00866
(5.65c/IDA-1.4.4 for <tex-k@cs.umb.edu>); Thu, 17 Nov 1994 07:01:43 -0500
Received: by acs3 (8.6.9/BU_Server-1.1)
id GAA108215; Thu, 17 Nov 1994 06:39:41 -0500
From: swift@acs.bu.edu (Matthew Swift)
Message-Id: <199411171139.GAA108215@acs3>
Date: Thu, 17 Nov 94 06:39:40 -0500
Reply-To: swift@bu.edu
To: tex-k@cs.umb.edu
Subject: cmdline -D and mode clash solved
Recently I reported that invoking dvipsk with the "-D" command line option
caused it to ignore the metafont mode specified with an entry in config.ps,
and revert to mode cx.
At the time, I was not sure whether it was getting the cx from the value of
"localfont" built into the mf.base and initialized from $texmf/mf/modes.mf, or
from somewhere else.
The answer is easy. The code in dvips.c explicitly sets the mode to NULL
whenever -D is specified from the command line. If the mode is NULL, a
default defined in config.h is used, and that default is cx.
It's even got a comment in dvips.c:
/* If we had the mode from the config file, don't use it.
If they specified one with -mode, keep it. */
if (!mfmode_option)
mfmode = NULL;
[much code]
/* If no mode specified yet, use compile-time default. */
if (!mfmode)
mfmode = MFMODE;
-------------------------------
That comment should specifically read "config.ps" file, because a
"config.printer" file _can_ set the mode with "-D" is used, if it is
explicitly loaded with the -P cmdline option (if the printer is used as a
default, I suppose the config.printer is not read), AND the -P option comes
AFTER the -D option on the command-line!
--------------------------
OK, so this note is to say what I thought was a bug is a feature, though its
documentation could be improved.
Next, though, I wonder why it is a feature. First, I think the dependence on
command-line order is very sketchy and confusing. And second, though I do not
understand the details of resolutions and modes, I think that in the situation
that a resolution is specified without a mode, it makes more sense to have the
default be the one in config.ps, not the (compiled) one in config.h. Both are
factory set to cx, but it is much more convenient and therefore much more
likely and more preferable to change config.ps, instead of changing config.h
and recompiling. I think the value in config.h should be a last resort to
keep from crashing.
Of course if there is a good reason for the way it is, it should stay -- I am
not qualified to decide.
NeXT computers:
The issue came up for me because when you print from NeXT's texview program,
it uses -D but does not use -mode. Fortunately, it specifies -P also,
so that the easy workaround is to have the line:
M nexthi
in both config.ps and config.printer.
I could also change the sources for texview, of course, if I dare mess with
objective C.
I have hacked the sources of texview (nextstep 3.0 motorola) and the
NeXT-supplied MakeTeXPK so that they now work nicely side-by-side with the
kpathsea distribution of tex and dvips. If anything thinks I should post them
somewhere, just let me know.
Matt
PS I never did find out why, when kpathsea and MakeTeXPK built a cx pk-font
under the above conditions, it caused a different size than it was looking for
to be generated, so that kpathsea would cause a font to be built, and then
reject it. This seems like another problem to me.